Subscriber service selection over non-channelized media

ABSTRACT

In one embodiment, a method comprises receiving a request from a computing device for an address. The request is to include a unique value associated with the computing device. The method also comprises generating a username based on the unique value. The username is associated with the computing device. Additionally, the username is bound to a context within a network element. The method also comprises assigning an address to the computing device within the context. A circuit is generated between the computing device and the network element based on the address.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 10/133,072, entitled “Subscriber Service Selection Over Non-Channelized Media”, filed on Apr. 26, 2002, which is incorporated by reference in its entirety.

FIELD OF THE INVENTION

The invention relates to the field of communications. More specifically, the invention relates to subscriber service selection over non-channelized media.

BACKGROUND OF THE INVENTION

In the field of communications, the need for high-speed transmission of data including video and audio has continued to increase. Moreover, there has been an increase in the selection of services by which users can connect to a network, such as the Internet. Specifically, Internet Service Providers (ISPs) may allow for connectivity to the Internet through lower-speed connections at different rates, such as 56 kilobits/second, by employing a Plain Old Telephone Service (POTS) line. Other choices for connection, which are at higher speeds, into a network can include Integrated Services Digital Network (ISDN), Digital Subscriber Line (DSL) service (both using a POTS line), and cable modem service over a Radio Frequency (RF) cable line.

Current approaches for network connectivity for certain connection services (including cable modem service) are such that a group of subscribers are pooled together and treated as an individual entity. Such an approach does not allow for individualized accounting and/or usage tracking for different subscribers connecting to the network. In contrast, other techniques (including DSL service) do allow for individualized treatment of subscribers. Disadvantageously, these techniques require specialized software and/or hardware to be executing on the individual subscriber/client machines to allow for this individualized approach. In particular, DSL service provides for this individualized treatment by using software and/or hardware that allows for the Point-to-Point Protocol over Ethernet (PPPoE) protocol. Accordingly, the costs of such services are increased to account for this additional software and/or hardware.

SUMMARY OF THE INVENTION

A method and apparatus for enabling subscriber service selection over non-channelized media are described. In one embodiment, a method comprises receiving a request from a computing device for an address. The request is to include a unique value associated with the computing device. The method also comprises generating a username based on the unique value. The username is associated with the computing device. Additionally, the username is bound to a context within a network element. In an embodiment, the username is used to select a context (service). The method also comprises assigning an address to the computing device within the context. A circuit is generated between the computing device and the network element based on the address.

In an embodiment, a method includes receiving a request from a subscriber device for a source address for communications in a network. The request is to include an identification of the subscriber device. Additionally, the method includes converting the identification of the subscriber device from a decimal value to a number of text characters. The method also comprises assigning a source address to the subscriber device based on the converted identification.

In one embodiment, an apparatus comprises a memory to store a number of source addresses for a context. The apparatus also comprises a control engine coupled to the memory. The control engine is to generate a subscriber identifier based on an identification of a computing device coupled to the apparatus. The control engine is to assign one of the number of source addresses to the computing device based on the context of the subscriber identifier.

In an embodiment, a network element comprises a traffic card that includes a port for receiving data from a client device. The traffic card is to receive a request for a source address on the port. The request includes an identification of the client device. The network element also includes a control card coupled to the traffic card. The control card comprises a control engine. The control engine is to generate a subscriber identifier based on the identification of the client device. The control engine is to assign a source address to the client device based on the subscriber identifier.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention may be best understood by referring to the following description and accompanying drawings which illustrate such embodiments. The numbering scheme for the Figures included herein are such that the leading number for a given element in a Figure is associated with the number of the Figure. For example, system 100 can be located in FIG. 1A. However, element numbers are the same for those elements that are the same across different Figures. In the drawings:

FIGS. 1A-1C illustrate systems for enabling subscriber service selection over non-channelized media, according to one embodiment of the invention.

FIG. 2 illustrates a block diagram of a network element, according to an embodiment of the invention.

FIG. 3 illustrates a more detailed block diagram of a control card within a network element, according to one embodiment of the invention.

FIG. 4 illustrates a more detailed block diagram of a network element, database server and operations and communications therewith, according to one embodiment of the invention.

FIG. 5 is a flow diagram for providing subscriber service selection over a non-channelized media, according to one embodiment of the invention.

DETAILED DESCRIPTION

A method and apparatus for enabling subscriber service selection over non-channelized media are described. In the following description, numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.

References in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, “connected” may be used to indicate that two or more elements are in direct physical or electrical contact with each other. “Coupled” may mean that two or more elements are in direct physical or electrical contact. However, “coupled” may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.

Embodiments of the invention enable subscriber service selection over non-channelized media. In an embodiment, subscribers coupled to a network are identified individually based on an identification of the client device, such as the Media Access Control (MAC) address of the networking card within the client device. As will be described in more detail below, this identification is converted into a username that is unique to the subscriber such that the subscriber can be assigned a source address that is associated with this username. Accordingly, subscribers can be individually identified to allow for individualized treatment, including rate limiting, policing values and access control lists on a per subscriber basis. Moreover, such treatment is independent of the need to include specific hardware and/or software on the client machine.

FIGS. 1-4 show block diagrams of systems for enabling subscriber service selection over non-channelized media, in accordance with embodiments of the invention. FIG. 5 shows a flow diagram illustrating operations for enabling subscriber service selection over non-channelized media, according to embodiments of the invention. The operations of the flow diagram will be described with references to the systems shown in the block diagrams. However, it should be understood that the operations of the flow diagram could be performed by embodiments of systems other than those discussed with reference to the block diagrams, and embodiments discussed with reference to the systems could perform operations different than those discussed with reference to the flow diagram.

FIGS. 1A-1C illustrate systems for enabling subscriber service selection over non-channelized media, according to one embodiment of the invention. As will be described in more detail below, a system 100 of FIG. 1A illustrates a system of communications that can be based on a number of protocols and configurations, while a system 150 of FIG. 1B and a system 160 of FIG. 1C illustrate systems of communications based on specific types of protocols and configurations. In particular, the system 150 of FIG. 1B illustrates a system of communications based on a cable infrastructure, while the system 160 of FIG. 1C illustrates a system of communications based on an infrastructure that employs DSL/Asynchronous Transfer Mode (ATM) and Ethernet. These systems are by way of example and not by way of limitation, as other systems based on other types of protocols and having other types of configurations can incorporate embodiments of the invention. For example, embodiments of the inventions can be incorporated into a wireless infrastructure, wherein wireless concentrators can route data from client devices into the network elements described herein.

With regard to FIG. 1A, a system 100 comprises a computing device 102, a network element 104, a database server 108 and a network 110. As shown, the computing device 102 is coupled to the network element 104 through a subscriber connection 112. The network element 104 is also coupled to the database server 108 and the network 110. In an embodiment, the network element 104 is coupled to the database server 108 through the network 110. In another embodiment, the network element 104 is coupled to the database server 108 through a network that is separate from the network 110.

In one embodiment, the network 110 is a local area network (LAN). In an embodiment, the network 110 is a wide area network (WAN). Further, the network 110 may be a combination of different networks that couple the network element 104 to other computing devices and network elements coupled thereto. In an embodiment, the network element 104 is coupled to receive data from client device 102 over non-channelized media.

In one embodiment, the database server 108 stores data for a number of subscribers and their associated subscriber connections. In an embodiment, the database server 108 stores data related to authentication, authorization and accounting for subscribers coupled to different network elements within a network. In one embodiment, the database server 108 is a RADIUS server for storing this data regarding subscribers and the associated subscriber connections. In one embodiment, the network element 104 enables subscriber service selection over non-channelized media, as will be described in more detail below.

FIG. 1B illustrates a system 150 for routing data in an infrastructure for a cable environment. Similar to the system 100, the system 150 comprises the computing device 102, the network element 104, the database server 108 and the network 110. The system 150 also comprises a hybrid fiber coaxial cable (HFC) network 120 and a cable modem transmission system (CMTS) 122. As shown, the HFC network 120 is coupled to the computing device 102 and the CMTS 122. Additionally, the CMTS 122 is coupled to the network element 104. Accordingly, communications between the computing device 102 and the network element 104 are routed through the HFC network 120 and the CMTS 122.

In an embodiment, the HFC network 120 is a cable infrastructure that combines the radio frequency (RF) data communications of a number of computing devices 102 that are forwarded to the CMTS 122. In an embodiment, the CMTS converts the RF data communications into data packets, such as Internet Protocol (IP) packets, to be routed by the network element 104.

FIG. 1C illustrates a system 160 for routing data in an infrastructure for a DSL and Ethernet environment. Similar to the system 100, the system 160 comprises the computing device 102, the network element 104, the database server 108 and the network 110. The system 160 also comprises a Digital Subscriber Line Access Multiplexer (DLSAM) 124, an Asynchronous Transfer Mode (ATM) network 126 and a computing device 132.

As shown, the computing device 102 is coupled to the network 104 (via the subscriber connection 112) through the DSLAM 124 and the ATM network 126. The computing device 132 is coupled to the network element 104 through an Ethernet communications 134.

As is known in the art, the DSLAM 124 is a device within a network that combines a number of DSL communications into a single ATM transmission. The ATM network 126 comprises a number of communication links for routing data based on the ATM protocol. Accordingly, in an embodiment, the communications from the computing device 102 is received into the network element 104 as data based on the ATM protocol. Additionally, as shown, the computing device 132 and the network element 104 communicate based on the Ethernet protocol through Ethernet communications link 134. The operations of the systems illustrated in FIGS. 1A-1C will be described in more detail below.

FIG. 2 illustrates a block diagram of a network element, according to an embodiment of the invention. In particular, FIG. 2 illustrates a more detailed block diagram of the network element 104. As shown, the network element 104 includes traffic cards 202-208. The network element 104 also includes a control card 210 and a forwarding card 212.

In an embodiment, each of the traffic cards 202-208 and the forwarding card 212 can include a processor and memory. Additionally, the control card 210 is described in more detail below in conjunction with FIG. 3. The traffic cards 202-208, the control card 210 and the forwarding card 212 are coupled to system buses. In an embodiment, the control card 210 performs control, system configuration and management tasks for the network element 104. For example, if the forwarding card 212 needs to be updated with a new Internet Protocol (IP) address table, such data is received by the control card 210 and transmitted to the forwarding card 212, wherein such data is updated therein.

Additionally, as will be described in more detail below, the control card 210 includes memory that stores addresses assigned and/or to be assigned to client devices coupled to the network element 104. For example, returning to FIGS. 1A-1C, when the client device 102 is attempting to couple to the network 110 through the network element 104, a series of communications are exchanged between the client device 102 and the network element 104 in order to assign an address to the client device 102 (as will be described in more detail below).

Moreover, the forwarding card 212 provides for buffering, packet processing and forwarding of data packets being received by the traffic cards 202-208. In particular, the traffic cards 202-208 can be coupled to a number of data transmission lines, which are coupled to other network elements and/or computing devices, as shown in FIG. 1. Accordingly, the traffic cards 202-208 receive and transmit data traffic from and to data transmission lines coupled thereto. Such data traffic is transmitted to the forwarding card 212, where this traffic can be buffered, processed and/or forwarded to other traffic cards within the network element 104, as will be described in more detail below.

The embodiment of the network element 104 is by way of example and not by way of limitation, as network elements having other architectural configurations can incorporate embodiments of the present invention. Examples of other network elements that could incorporate embodiments of the present invention could have multiple forwarding cards or have a single line card incorporating the functionality of both the forwarding and the controlling. Moreover, a network element having the forwarding functionality distributed across the traffic cards could incorporate embodiments of the present invention.

FIG. 3 illustrates a more detailed block diagram of a control card within a network element, according to one embodiment of the invention. In particular, FIG. 3 illustrates a more detailed block diagram of the control card 210 shown in FIG. 2. As shown, the control card 210 comprises a processor 310, a memory 320 and a control engine 302. The processor 310 is coupled to the control engine 302 and the memory 320. The forwarding engine 302 is coupled to the memory 320.

The processor 310 may comprise any suitable processor architecture. The control card 210 for other embodiments may comprise more processors any of which may execute a set of instructions that are in accordance with embodiments of the invention.

Additionally, as shown, the memory 320 stores a number of addresses 306A-M. Addresses 306A-306I are those addresses for the subnet 340A, while addresses 306H-306M are those addresses for the subnet 340I. Accordingly, a subnet 340 can include one to a number of addresses. Additionally, as shown, the subnets 340A-340I are within contexts 350A-I. Accordingly, a context 350 can include one to a number of addresses 306.

In an embodiment, these addresses are source Internet Protocol (IP) addresses to be dynamically assigned to clients/subscribers that are coupled to the network element 104. The memory 320 may also store other data and/or instructions, for example, for the control card 210 and may comprise any suitable memory, such as a dynamic random access memory (DRAM) for example.

In an embodiment, the control engine 302 is a process or task that can reside within the memory 320 and/or the processor 310 and can be executed within the processor 310. However, embodiments of the invention are not so limited, as the control engine 302 can be different types of hardware (such as digital logic) executing the processing described therein (which is described in more detail below).

Accordingly, the control card 210 may include a machine-readable medium on which is stored a set of instructions (i.e., software) embodying any one, or all, of the methodologies described herein. For example, software can reside, completely or at least partially, within the memory 320 and/or within the processor 310.

The operations of subscriber service selection over a non-channelized media will now be described with reference to the block diagram of FIG. 4 and the flow diagram of FIG. 5. FIG. 4 illustrates a more detailed block diagram of a network element, database server and operations and communications therewith, according to one embodiment of the invention.

As shown, the network element 104 includes ports 420A-D, interfaces 422A-D and contexts 350A-I. Although FIG. 4 illustrates messaging and operations related to one port coupled to one interface of a context, in other embodiments, the different ports, interfaces and contexts of the network element 104 can include the messaging and operations illustrated. In an embodiment, a number of interfaces are associated with a given port. In another embodiment, a single interface is associated with a given port.

In an embodiment, contexts 350 are modules/units associated with a given service. For example in an embodiment, a given content 350 is associated with a given ISP. Accordingly, a given content 350 can include a number of subnets that comprise a number of addresses (e.g., Internet Protocol (IP) addresses) that are to be dynamically assigned to subscriber/clients that are coupled to the network element 104. To help illustrate, a first ISP could be associated with the context 350A, while a second ISP could be associated with the context 350I, etc.

The database server 108 comprises a number of subscriber records 450 and a number of subscriber accounting records 452. In an embodiment, a given customer premise equipment (CPE) coupled to the network element 104 has an associated subscriber record 450 and an associated subscriber accounting record 452. For example, a subscriber using client device 102 that is connecting to the network 110 through the network element 104 has an associated subscriber record 450 and an associated subscriber accounting record 452. While FIG. 4 illustrates the network element 104 and the database server 108 as two separate elements, embodiments of the invention are not so limited. For example, in another embodiment, the database server 108 and/or the records therein can be incorporated into the network element 104.

Additionally, as shown in FIG. 4, the network element 104 and the database server 108 are receiving and transmitting a number of different messages as well as performing a number of operations. The network element 104 is coupled to receive an address request message 402. The network element 104 is to transmit a request for context message 404 to the database server 108. The database server 108 is to transmit a bind to context message 406 back to the network element 104, in a response to this request. Additionally, the network element 104 performs a bind operation, (the bind to interface operation 408), to bind the assigned address for the given subscriber to the interface 422 for the context 350A. The network element 104 is to transmit a return address message 410 back to the client device 102. A more detailed description of these messages and operations is set forth below in conjunction with a flow diagram 500 of FIG. 5.

In particular, FIG. 5 is a flow diagram for providing subscriber service selection over a non-channelized media, according to one embodiment of the invention. The operation of the flow diagram 500 will be described with reference to the exemplary systems shown FIGS. 1-4.

In block 502, a request for an address from the client device 102 is received. With reference to the exemplary embodiment of FIG. 3, the control engine 302 receives this request. In an embodiment, the request includes an identifier of the client device 102. In one embodiment, the identifier of the client device 102 is the Media Access Control (MAC) Address of a customer premise equipment (such as the network card) within the client device 102 that is communicating with the network element 104. In an embodiment, the request is based on the Dynamic Host Configuration Protocol (DHCP), which allows for the assignment of Internet Protocol (IP) addresses to clients being coupled to a network, as is known in the art. In one such embodiment, the request from the client device 102 is a DHCP discover request, which is requesting an IP address from the network element 104. Returning to FIG. 4 to help illustrate, the address request message 402 is received into the network element 104 at the port 420A. This address request message 402 is being transmitted by the client device 102 (not shown in FIG. 4).

In block 504, a subscriber identifier is generated based on the client identifier. In an embodiment, the client identifier is converted into the subscriber identifier. With reference to the exemplary embodiment of FIG. 3, the control engine 302 generates this subscriber identifier. In an embodiment, the subscriber identifier is a username to be associated with this client device 102. In one embodiment, the subscriber identifier is a number of text characters that correspond to the client identifier. For example, in an embodiment wherein the client identifier is a MAC address, such as “112233445566” (which is comprised of 6 hexadecimal numbers having 12 hexadecimal nibbles), the control engine 302 generates the following text characters: “11:22:33:44:55:66”, wherein each hexadecimal nibble is converted to a character that corresponds to the hexadecimal value (0-9 and A-F). However, embodiments of the invention are not so limited. For example, in other embodiments, the control engine 302 can generate a different subscriber identifier (based on the client identifier), using other operations, such as different ciphering operations, etc. To help illustrate, the control engine 302 could convert the hexadecimal values from the MAC address to a binary value and add a constant value to this binary value and convert the individual binary values into a corresponding text character.

In block 506, the context 350 for the subscriber (client) and associated subscriber attributes are retrieved. With reference to the exemplary embodiment of FIG. 3, the control engine 302 retrieves the context for the subscriber and the associated subscriber attributes. In one embodiment, the control engine 302 retrieves the context and the attributes from the database server 108, which stores a corresponding subscriber record 450 for this subscriber. In an embodiment, the control engine 302 transmits the subscriber identifier to the database server 108, wherein the database server 108 retrieves the context and the associated subscriber attributes from the subscriber record 450. Returning to FIG. 4 to help illustrate, the request for the context message 404 is transmitted from the network element 104 to the database server 108. The database server 108 transmits the bind to context message 406 back to the control engine 302.

In an embodiment, when the client device 102 initially communicates with the network element 104, the database server 108 will not include a corresponding subscriber record 450. Accordingly, if the database server 108 does not return a corresponding subscriber record 450, the control engine 302 causes the client device 102 to execute an initiation process, wherein the client device 102 provides data to be entered into the subscriber record 450. In an embodiment, the control engine 302 redirects the client device 102 to a web site for activating a subscriber account, wherein the different subscriber attributes, such as the ISP, the data rates (rate limiting and policing values), the access control lists, etc. are selected. Accordingly, the control engine 302 can retrieve the context 350 for this subscriber once the subscriber account has been established. In an embodiment, when the client device 102 requests a domain name service, the control engine 302 generates a response back to the client device 102 that includes a redirect message. Accordingly, this redirect message could be processed by a web site (described above) for activating the subscriber account. Accordingly, such a process reduces the opportunity for a new subscriber to provide fraudulent, false or incomplete data during an account subscription.

In block 508, an address is assigned to the subscriber based on the context 350. With reference to the exemplary embodiment of FIG. 3, the control engine 302 assigns an address to the subscriber based on the context 350. As described above, a given context 350 can comprise a number of subnets that can comprise a number of addresses. Returning to FIG. 3, assuming that the context for this subscriber is associated with the addresses for context 350, the control engine 302 selects one of the addresses 306 from one of the addresses of subnets 340A-M, which is not currently assigned, for assignment to the current subscriber.

In block 510, a virtual circuit is generated between the client device 102 and the network element 104. With reference to the exemplary embodiment of FIG. 3, the control engine 302 generates this virtual circuit between the client device 102 and the network element 104. In one embodiment, a given subscriber session has a one-to-one correspondence to a given virtual circuit. In one embodiment, a given transmission line (a real circuit) can include a number of virtual circuits. In particular, when the client device 102 is assigned an address for this given subscriber session, data packets received and transmitted from the client device 102 include this address in order to associate the data packets with the subscriber session (and therefore the associated virtual circuit). Returning to FIG. 4 to help illustrate, in conjunction with the creation of the virtual circuit, the control engine 302 binds the address to the interface 422, as illustrated by the bind to interface operation 408. Additionally, as shown in FIG. 4, as part of the generation of the virtual circuit, the control engine 302 returns the requested address back to the client device 102, as illustrated by the return address message 410.

In an embodiment wherein the DHCP protocol is employed for the assignment of the address, the control engine 302 generates an DHCP offer request that is transmitted back to the requesting client device 102. In turn, if the client device 102 accepts the address, the client device 102 transmits a request back to the network element 104. The control engine 302 transmits back an acknowledge of this acceptance.

In block 512, the account for the subscriber is updated. With reference to the exemplary embodiment of FIG. 3, the control engine 302 updates the account for the subscriber. In an embodiment, the control engine 302 generates an accounting message that indicates that there is an active subscriber session associated with this given subscriber, identified by the subscriber identifier (described above). The control engine 302 transmits this account message to the database server 108. Returning to FIG. 4 to help illustrate, the control engine 302 transmits this account update (update accounting message 412) to the database server 108. Accordingly, the database server 108 updates the corresponding subscriber accounting record 452. Additionally, although described such that the database server 108 updates a given subscriber accounting record 452, in a different embodiment, the database server 108 includes a log file such that modifications to a given subscriber account is appended to the log file. In another embodiment, instead of updating the account for the subscriber, these updates to the account are transmitted to the database server 108 as part of periodic updates for given subscriber accounts.

The servers as well as the traffic cards, forwarding cards and control cards included in the different network elements include memories, processors and/or Application Specific Integrated Circuits (ASICs). Such memory includes a machine-readable medium on which is stored a set of instructions (i.e., software) embodying any one, or all, of the methodologies described herein. Software can reside, completely or at least partially, within this memory and/or within the processor and/or ASICs. For the purposes of this specification, the term “machine-readable medium” shall be taken to include any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.

Thus, a method and apparatus for enabling subscriber service selection over non-channelized media have been described. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. For example, while embodiments of the invention are described such that a separate database server is coupled to store data related to subscriber connections. In other embodiments, such data can be stored within the network element 104. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. 

1. A computer-implemented method comprising: receiving a request from a computing device for an address, the request to include a unique value associated with the computing device; generating a username based on the unique value, the username associated with the computing device; binding the username to a context within a network element; assigning an address to the computing device within the context; and generating a circuit between the computing device and the network element based on the address. 